/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presenter;

import DAO.ProductoDAO;
import Model.Producto;
import java.awt.Rectangle;
import java.io.File;
import java.math.BigDecimal;
import java.util.List;
import java.util.Scanner;
import javax.swing.JProgressBar;
/**
 *
 * @author Paola
 */
public class ProductoPresenter {
    public static JProgressBar barrita ;
    
    public static Producto registrarProducto(String nombre, BigDecimal precioCosto,BigDecimal precioLista, int stock ){
        try{
        Producto nuevo_prod = new Producto();
        nuevo_prod.setNombre(nombre);
        nuevo_prod.setPrecioCosto(precioCosto);
        nuevo_prod.setPrecioLista(precioLista);
        nuevo_prod.setStock(stock);
        nuevo_prod.setEstado(1);
        return ProductoDAO.registrarProducto(nuevo_prod);
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }  
    }
    public static void modificarProducto(int idproducto, String nombre, BigDecimal precioCosto,BigDecimal precioLista, int stock , int estado){
        try{
        Producto prod = ProductoDAO.cargarProducto( idproducto ) ;
        prod.setNombre(nombre);
        prod.setPrecioCosto(precioCosto);
        prod.setPrecioLista(precioLista);
        prod.setStock(stock);
        prod.setEstado(estado);
        ProductoDAO.modificarProducto(prod);
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
        }          
    }        
    
    public static List<Producto> buscarProducto(String nombre){
        try{
        if( nombre.isEmpty() ) nombre = null ;
        return ProductoDAO.buscarProducto(nombre);
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }         
    } 
    public static Producto cargarProducto(int idProducto){
        try{
        return ProductoDAO.cargarProducto(idProducto) ;
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }         
    }    
    
    public static void registrarProducto( String path ){
        try{
            Scanner sc = new Scanner( new File( path ) ) ;
            int N = Integer.parseInt( sc.nextLine() ) ;
            double cantidad = 100.0 / (double)N ;
            for(int i = 0 ; i < N ; i++){
                String nombre = sc.nextLine() ; // nombre
                BigDecimal precioCosto = new BigDecimal( sc.nextLine() ) ; // precio costo
                BigDecimal precioLista = new BigDecimal( sc.nextLine() ) ; // precio lista
                Integer stock = Integer.parseInt( sc.nextLine() ) ; // stock
                
                Producto prod = new Producto();
                prod.setNombre( nombre ) ;
                prod.setPrecioCosto( precioCosto ) ;
                prod.setPrecioLista( precioLista ) ;
                prod.setStock( stock ) ;
                prod.setEstado(1);
                ProductoDAO.registrarProducto( prod ) ;
                
                double value = i * cantidad ;
                barrita.setValue( (int)value ) ;
                Rectangle progress = barrita.getBounds() ;
                progress.x = 0 ;
                progress.y = 0 ;
                barrita.paintImmediately( progress ) ;
            }
            barrita.setValue( 100 ) ;
            Rectangle progress = barrita.getBounds() ;
            progress.x = 0 ;
            progress.y = 0 ;
            barrita.paintImmediately( progress ) ;
        }catch( Exception e ){
            System.out.println( "Error en carga masiva de productos" ) ;
        }
    }
}
